versionの範囲指定ができるのでnpm installには再現性がない
node.jsでは、packageのversion管理にnpmを使う
ここで、$ npm iとした場合は再現性がない
つまり、全く同じ内容のpackage.jsonを見ていたとしても、$ npm iを実行するタイミングによって、異なるversionのpackageが入りうる そのため、package.jsonをGit管理していたとしても、以下のような問題が生じうる
チーム間で同じpackage.jsonを見ているのに、Aさんの環境ではバグらないが、Bさんの環境ではバグる
個人開発でも、1ヶ月前に$ npm iした時は上手くいったのに、今やってみたら上手く行かない
開発環境では上手く動いたが、本番環境でbuildするとバグる
なぜこのようなことが起きるのか?
例えば、"hoge" : "~1"と指定したとき、
ある時点ではv1.0が入るが
数日経つとv1.8が入りうる
ということが起こる
例え、自分の書いたpackage.jsonにそういう記述がなくても、
依存先のpackage.jsonでこの記法が使われている可能性があるため、この問題は避けられない
なぜ範囲指定ができるのかなどの意味がわかる
対策
etc.